|
|
|
Intel Math Kernel Library
Frequently Asked Questions
The Intel Math Kernel Library maintains the latest errata on the Intel Developer web site. Please check the library errata for further information.
Q: Would application developed using the Intel Math Kernel Library run on a system with non-Intel processors?
Q: What compiler environments do the Intel Math Kernel Library support?
Q: Where can I find the assembly code samples that implement MMX technology?
Q: I would like to use the Intel Math Kernel Library package with my C++ application (Microsoft Visual C++ 5.0*), and I don’t have a FORTRAN compiler. Is there a way to use these Intel Math Kernel Library in
C++?
Q: Will any of the 3 Intel Math Kernel Library builds (Microsoft Visual C++*, Watcom, or Intel) work with other compilers like Borland or GNU?
Q: What is the approximate speed of Intel's Intel Math Kernel Library for 64-bit, quadword aligned multiplication of 4x4 matrices, on a 200Mhz Pentium® Pro uniprocessor?
Q: I need functions that will copy a matrix, and swap a matrix. Are these available in the Intel Intel Math Kernel Library?
Q: Can I use Intel Math Kernel Library for fast matrix multiplication?
Q: How can I use more than one processor when I use Intel Math Kernel Library?
Q: Is the Intel Math Kernel Library link compatible with Digital Visual FORTRAN v5.0? or Lahey F90 v3.5?
Q: Would application developed using the Intel Math Kernel Library runs on a non-Intel processors, say those by AMD or Cyrix?
A: Our libraries will run on any processor that is 100% compatible with the Intel Architecture.
Intel is happy to compete with other companies - the price/performance/quality of our processors speaks for itself.
Q: What compiler environments do the Intel Math Kernel Library support?
A: Please refer to the library release notes or the library web site for more detail.
Q: Where can I find the assembly code samples that implement MMX technology?
A: Please visit the Intel’s WWW site at http://developer.intel.com/drg/mmx/appnotes, for sample code for several common operations.
Q: I would like to use the Intel Math Kernel Library package with my C++ application (Microsoft Visual C++ 5.0), and I don’t have a FORTRAN compiler. Is there a way to use these Intel Math Kernel Library in C++?
A: The Intel Compiler version of Math Kernel Library, MKL_I.LIB uses the cdecl interface. Since Microsoft Visual C++* uses cdecl interface as its calling protocol too, the Intel’s version of library can be called straightforwardly from MSVC, obeying the usual C/FORTRAN rules. Namely, all names of routines and functions must be upper case and all scalars must be passed by address rather than by value.
The error handling routine, xerbla(), is a Fortran routine. You will need to write your own version of this in C, again observing the appropriate call/return protocols, to satisfy the error calls from Math Kernel Library.
Q: Will any of the 3 Intel Math Kernel Library builds (Microsoft Visual C++*, Watcom, or Intel) work with other compilers like Borland or GNU?
A: We have not tested Intel Math Kernel Library with the filename, directory name, or volume label syntax is incorrect.
any other compilers than those we support. However, if other compilers conform to the CDECL calling interface, the Intel library would be appropriate. The error handling routine, xerbla(), is a Fortran routine. You will need to write your own version of this in C, again observing the appropriate call/return protocols, to satisfy the error calls from Math Kernel Library.
Q: What is the approximate speed of Intel's Intel Math Kernel Library for 64-bit, quadword aligned multiplication of 4x4 matrices, on a 200Mhz Pentium® Pro uniprocessor?
A: The matrix multiply is a general matrix multiply aimed at large matrices. When performing 4x4 matrix multiplies, it would be best to optimize very specifically for that and not use a function aimed at matrices sized in the 100s or 1000s.
We do not have a performance number for this type of matrix. Be assured it is not great since the overhead of getting into the routine is simply too high.
Q: I need functions that will copy a matrix, and swap a matrix. Are these available in the Intel Intel Math Kernel Library?
A: The functions in the BLAS, and thus in much of Intel Math Kernel Library, support the solving of systems of equations. Only those functions which are necessary for the solving systems of dense equations are there. Since matrix copying is not required, it is not available. However, matrices can be copied and transposed using the Level 1 BLAS routine XCOPY. See the Intel Math Kernel Library manual for details on [S,C,D,Z] COPY. These copying routines are written optimally and will use the available memory bandwidth effectively.
Q: Can I use Intel Math Kernel Library for fast matrix multiplication?
A: Yes. The single most important part of the BLAS, and thus Math Kernel Library, is xgemm, where x stands for s,d,c or z, for single precision, double precision, complex or double complex. The gemm stands for GE-neral MatrixMatrix, and is the matrix multiplication routine. And yes, it is fast and it runs on as many processors as the user has, subject to setting the number of processors
Q: How can I use more than one processor when I use Intel Math Kernel Library?
A: All you need to do is to build your program, linking in Intel Math Kernel Library. If your program uses the level 3 BLAS, they can run on more than one processor. You can set the environmental variable MKL_NPROCS by one of two means. If you always wish to use the same number of processors, you can go into the Control Panel and click on System. In System Properties, click on Environment. You can set a new variable call MKL_NPROCS and set the number of processors you wish to use in the Value.
Alternatively, in a Command Prompt enter "set MKL_NPROCS=". So, if you have a dual processor system running Windows NT* 3.51 or later, in a MS-DOS Command Prompt window, enter "set MKL NPROCS=2", and the Level 3 BLAS will use both processors.
To see what the settings are, enter "set ". In the information that comes to the screen will be the value
for MKL_NPROCS.
As long as you run in that window the environmental variable will be set.
Q: Is the Intel Math Kernel Library link compatible with Digital Visual FORTRAN v5.0? or Lahey F90 v3.5?
A: We no longer support Lahey. The Digital Visual Fortran compiler will interface to Math Kernel Library in future releases.
The names of the versions of the library will continue as they are now, so DVF would be linked with MKL_M.LIB, the version developed for Microsoft Powerstation Fortran (MSFT).
When compiling programs with DVF, if the compiler is invoked in place of MSFT, namely as FL32, arithmetic behavior should be the same as you would get with MSFT. If DVF is invoked as F77, to get the same numeric behavior in your code as you would get with MSFT, you need to set the compile flag /fltconsistency. If you do not use this flag, some of the BLAS tests fail by very small margins.
|
|
|
|
|
|